﻿//盼望着，盼望着，东风来了，春天脚步近了。
//值此大好春光，老师组织了同学们出去划船，划船项目收费如下：
//双人船最多坐两人，也可以坐一人，收费a元
//三人船最多坐三人，也可以坐两人或者一人，收费b元
//本次出游加上带队老师共n人，如何安排能使得花费最小呢？
//
//输入描述 :
//第一行给出一个正整数T(1≤T≤1000)，代表测试数据的组数。
//接下来T 行每行给出三个正整数n, a, b, 1≤n, a, b≤10^9，含义如题。
//输出描述 :
//每组输入输出一行，代表最小的花费
//
//输入
//	2
//	2 20 200
//	3 20 20
//输出
//	20
//	20

#include <iostream>
using namespace std;
typedef long long LL;
LL t;
LL n, a, b;
LL fun()
{
	// 边界情况
	if (n <= 2) return min(a, b);
	LL ret = 0;
	if (a * 3 < b * 2) // 尽可能的选择双⼈船
	{
		ret += n / 2 * a; n %= 2;
		if (n) ret += min(min(a, b), b - a);
	}
	else // 尽可能的选择三⼈船
	{
		ret += n / 3 * b;
		n %= 3;
		if (n == 1) ret += min(min(a, b), 2 * a - b);
		if (n == 2) ret += min(min(a, b), 3 * a - b);
	}
	return ret;
}
int main()
{
	cin >> t;
	while (t--)
	{
		cin >> n >> a >> b;
		cout << fun() << endl;
	}

	return 0;
}







